package fr.adfm.managedbean;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import fr.adfm.dto.CouleurDto;
import fr.adfm.dto.ProduitDto;
import fr.adfm.dto.VentePriveeDto;
import fr.adfm.service.facade.Facade;

@Component
@Scope("request")
public class ListeProduitsCtrl implements Serializable {

	@Autowired
	private Facade facade;
	
	@Autowired
	private FicheProduitCtrl ficheProduitCtrl;
	
	@Autowired
	private SessionManager sessionManager;
	
	public VentePriveeDto getVentePrivee() {
		return sessionManager.getVentePrivee();
	}
	public void setVentePrivee(VentePriveeDto ventePrivee) {
		sessionManager.setVentePrivee(ventePrivee);
	}
	public List<ProduitDto> getProduits() {
		List<ProduitDto> liste = facade.getVentePriveeService().getAllProduits(sessionManager.getVentePrivee().getId());
		System.out.println(liste);
		return liste;
	}
	private VentePriveeDto ventePrivee;
	
	public String ficheProduit(ProduitDto produit) {
		ficheProduitCtrl.setProduitAffiche(produit);
		return "fiche_produit";
	}
	
	public String getImage(ProduitDto produit) {
		String rootPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("resources/images/produits/"+produit.getId());
		List<String> images = new ArrayList<String>();
		File[] files = new File(rootPath).listFiles();
		if (files == null || files.length == 0) {
			return "produits/default.jpg";
		}
		for(File tmp : files) {
			images.add("produits/"+produit.getId()+"/"+tmp.getName());
		}
		if (images.size() > 0) {
			return images.get(0);
		}
		return "produits/default.jpg";
	}
	
}
